The present invention relates to three-dimensional object modeling and more particularly to a computer implemented system and method for three-dimensional design and modeling.
Computer aided design, drafting and modeling have been some of the most important applications utilizing computers since their inception. The early computer aided design (CAD) applications were used to simplify the creation of two-dimensional models of design objects. The creation of architectural drawings and electronic circuit layouts were just a few of these early applications.
The benefits realized by two-dimensional computer drafting applications are significantly multiplied when such an application adds the capability to model geometries in three dimensions. Typical computer applications that provide 3D modeling capabilities have been complex and required significant user training.
Although the benefits of 3D modeling have been clearly proven, as a general rule, it is still a greatly underutilized tool. In some professions, for instance mechanical design, the use of 3D modeling is fairly prevalent, but in many fields it has not had wide spread adoption. Even though several different approaches to modeling have been introduced over the years, many of which are very powerful, they traditionally have been difficult for design professionals to master. This is because they often require a technical/mathematical aptitude and an understanding of an extensive amount of tools, terminology and modeling paradigms that are unfamiliar to non-technical users.
Another barrier to adoption of 3D modeling by design professionals has been the complaint that the applications do not lend themselves well to experimenting with different design scenarios. As a general rule, the quick, xe2x80x9cwhat ifxe2x80x9d types of modifications a designer would like to play with are very difficult, or awkward, to implement with most 3D applications. This stifles creativity because the user must devote a comparatively large amount of energy and time driving the technology as compared to focusing on the creative design task. Consequently, designers in many firms continue to use the traditional pen and paper to communicate designs to technicians who are responsible for translating the design into 3D computer models.
In summary, the approaches being offered on the market today traditionally have steep learning curves that do not enable the casual or less-technical users to realize the advantages of 3D computer modeling. In addition, most 3D applications do not lend themselves to quick, non-precise modifications of the model that makes them poor conceptual design tools.
There is a common consensus in the industry that 3D modeling must be made more intuitive and easier to use than what is currently being offered, particularly for less highly trained individuals. These and other needs are addressed by the present invention that provides an intuitive three-dimensional modeling environment, in part, by adopting an approach similar to the two-dimensional pen-and-paper drawing method that most people are familiar with.
In order to make the invention more intuitive the software enables the user to simply define the edges of the desired form in 3D space to create a 3D surface model. The software recognizes when these edges form a closed planer shape and will construct, a two-dimensional xe2x80x9cfacexe2x80x9d based upon and bounded by these edges. A xe2x80x9cfacexe2x80x9d can be thought of as the mathematical equivalent of skin filling the area between the defining edges. The edges can be drawn in any order or orientation. This basic ability to just draw the edges of the desired model is a process that is very similar to drawing with pen and paper and substantially reduces the learning curve.
Specifying the two endpoints of the edge in 3D space creates edges. In order to help simplify this problem, a variety of inferencing aids and features are presented to help the user successfully locate endpoints in 3D .
Color-coded axis (red, green, blue) are used to indicate the X,Y, Z directions in 3D space. When constructing an edge, if drawn parallel to one of the primary axis, the edge will be displayed with the color of the parallel axis.
The 3D inferencing feature, which allows geometric constructions to be infered, permits the user to set the endpoint of the line being constructed to be an equal distance from the axis, in effect enabling endpoints and other geometry to be aligned with known points in the model. Inferencing also enables the user to specify a line segment xe2x80x9cAxe2x80x9d as a reference, while defining a new edge xe2x80x9cBxe2x80x9d, and be alerted with color and tool tips when the current-segment (B) is parallel or perpendicular to xe2x80x9cAxe2x80x9d.
The user is automatically notified when the endpoint of an edge being defined is on an existing face in the model. By default, when the cursor is over a face the endpoint being defined is drawn on that face. Thus to draw edges on a face, the user simply has to move the cursor over that face. This feature can also be used to indicate when a non-coplanar edge being created intersects a face, in effect, providing real-time intersection feedback.
The user is given cursor color and tool tip feedback as to when the cursor is on relevant points of an existing edge-end points and mid points. If the cursor is over an intersection, those are also indicated, whether that intersection is between multiple edges or between an edge and a face.
The tape measure tool is provided that allows users to measure distances like a real-world tape measure does. It is also used for creating construction lines between two points and construction lines parallel to existing edges. Construction lines are lines that can be referenced when drawing or placing geometry in the model.
The protractor tool is provided for measuring angles between edges and creating construction lines at desired angles and locations.
The invention allows the input of exact displacements and dimensions. In general, any operation that involves the user specifying a distance or displacement can be achieved by specifying the distance with mouse input or by indicating a direction and then manually entering a distance.
The eraser tool behaves more like a real world eraser. With the eraser tool active, the user moves it across entities to be erased highlighting them first then completing the erase by letting go of the left mouse button. As edges are erased, connecting faces are also eliminated simulating the process carried out on paper.
Edges that form a closed planer shape will cause a face to be formed. As a general rule, if additional coplanar-edges are introduced entirely within, or intersecting the edges of, an existing face, any additional closed shapes that are created by the combination of new edges or existing edges will cause the original face to be split accordingly.
If edges are removed, the application will xe2x80x9chealxe2x80x9d or join independent faces where possible and remove faces that are no longer surrounded by edges
Another aspect of the invention allows a designer to manipulate a model by pushing and pulling on faces of the model. Using the push/pull operation, a designer can extrude 2D geometry into 3D , change the size of existing 3D geometry, or introduce new faces to change the shape of existing 3D geometry. The user is given real-time feedback while pushing or pulling geometry. This immediate feedback is very helpful in the design process.
The result of pushing or pulling a face is that the face will be moved in a given direction. If there are faces connected to edges of the face being moved whose normals are perpendicular to the move direction, those faces will be stretched (possibly with new edges inserted) so that they remain connected to the original face. If there are faces connected to the face being moved whose normals are not perpendicular to the move direction; new faces are inserted between them and the original face. If there are edges of the face being moved with no other faces attached; new faces are created at those edges. While some aspects of the push/pull operation are similar to an extrude, its ability to introduce new edges when needed: and modify existing geometry where it can makes it unique.
If a face is coincident with other faces in the model after being moved, then the face will be merged with the geometry at the new location. One result of this is that a user can use the push/pull operation to make holes or cuts in a model by pushing the face until it is coincident with some other geometry.
Movements are done in real-time to enable a user to see the current effect of an operation and to easily set the desired movement.
This tool allows existing geometry to be moved or copied by first selecting the desired geometry then specifying a base point and displacement. More uniquely, it allows the user to move connected edges, faces or vertices in a fashion that preserves planar faces while maintaining the connections between attached geometry. For example, this would allow the user to move the bottom edge of a cube away from the face to form a sloped edge on the cube. Or it would allow the user to xe2x80x9cmovexe2x80x9d a face of the cube in the plane of that face to form a parallelepiped. As a more sophisticated example, the 2D projection of a roof with connected ridges and valleys could be transformed into a 3D model by selecting and moving the ridges of the roof up in the vertical direction.
Within many modeling environments, repetitive elements are routinely employed. For example, in an architectural setting, particular windows and doors may occur multiple times in a given model. Many design environments provide libraries of these objects along with the ability for users to create their own objects and store them in similar libraries. Often users find the process of orienting and positioning these elements to be difficult or cumbersome with existing modeling applications. xe2x80x9cSmartxe2x80x9d modeling systems, such as object based architectural applications, will often provide xe2x80x9csmart partsxe2x80x9d that have intelligent behavior properties associated with them. These smart parts are attractive to the user because they generally are easy to position and they know how to interact with the model. For instance, a xe2x80x9cwindowxe2x80x9d part may know that it can only reside in vertical xe2x80x9cwallxe2x80x9d elements and once placed, the opening it defines should be xe2x80x9ccutxe2x80x9d in the wall. Furthermore, if the wall is moved the window will move with it.
The disadvantage of the smart modeling systems is that generally the behavior characteristics of each object must be created with complex programming steps. Accordingly, one aspect of the present invention relates to a method and software for creating a component within a three-dimensional model that allows a non-programmer user to easily and simply define and specify re-usable, intelligent objects that can be created in-place within a model and then be re-used in that same model or another model.
In addition to providing user defined smart behavior of components, a powerful rotation mechanism is present in the application""s components. With the Move tool active, the user can simply move the cursor over any component and a bounding box of the component is displayed. The bounding box is an imaginary rectangular box that contains the component and has its faces aligned with the primary axes. As the cursor is moved over the different faces of the bounding box, rotation grips are displayed. If the user moves the cursor over one of the rotation grips, then the protractor is displayed and the user simply clicks the mouse to being rotation. The component is rotated in real-time about the mid-point of the bounding box as the user moves the cursor. A second mouse click by the user specifies the amount of rotation. As an alternative, the desired number of degrees of rotation can be entered via a keyboard or other similar input device. This mechanism makes positioning and orienting components in three-dimensional space intuitive and easy for an average user.
By default, all components have a built in mechanism that allows them to be rotated by simply moving the cursor over xe2x80x9crotation gripsxe2x80x9d on the faces of a component""s bounding box. The application also enables rotation of any selection of geometry in the scene regardless of whether or not that geometry is a component. The Rotate feature incorporates the Protractor tool in its operation. The user first orients the protractor on the desired plane by moving the cursor over that plane, then the protractor""s location is positioned on a desired rotation point by a first mouse click. A second click by the user defines the orientation of the protractor and the last step is to move the cursor to cause the desired rotation of the selected geometry about the desired rotation point. Like rotation grips on components, this mechanism is very intuitive and easy to execute for the average user. The Rotate tool has the advantage that a user can define the point of rotation and, while defining the rotation, the user can reference known locations in the scene in order to make alignment of various scene geometries easier.
The proposed invention eliminates many of the barriers to 3D modeling by adopting a modeling paradigm that is comfortable to most design professionalsxe2x80x94drawing with pen and paper. The invention contains a small set of powerful tools that, where possible, mimic their real world counterparts to make the application more intuitive and easy to learn. The ability to push and pull faces, edges and vertices in order to create or alter 3D geometry enables the user to modify and construct models in new powerful ways. Most design professionals are very fluent at creating 2D projections from 3D forms, as a result the invention is addressing means of easily converting 2D projections into 3D models by allowing faces and edges to be xe2x80x9cpushed or pulledxe2x80x9d to create 3D forms. The invention enables the user to define their own components and to specify the behavior of those components in the model. Components can be easily oriented in three-dimensional space with built in rotation grips. The rotate tool enables intuitive rotation, of any geometry in a scene about a desired point. The invention allows the user to work in a real-time hidden line or shaded mode, it allows the user to work in a perspective mode and it will cast real-time shadows. These features all contribute to making the application easier to use and better suited to design. The invention enables the user to make easy and quick modifications to a design which makes the application a powerful tool in the early conceptual design portions of a project, yet it is powerful enough to allow early designs to be refined into complete, detailed models.
Accordingly, one aspect of the present invention relates to a method and software for three-dimensional modeling. In accordance with the methodology of this aspect input is received relating to a number of edges that form a closed perimeter and lie in a common plane, a two-dimensional shape based on and bounded by these edges is defined, and, in response to additional input the two-dimensional shape is extruded to form a three-dimensional figure based on this additional input.
A further aspect of the present invention relates to a method and software for three-dimensional modeling in which a three-dimensional model, that includes a number of edges, is maintained and input relating to the definition of a new edge is received. In response to this input, a set of edges that lie in the same plane as the new edge is selected and from these selected edges, those edges that form a closed perimeter are further selected to define a two-dimensional shape based on and bounded by the further selected edges. In response to receiving input indicating a push/pull operation, the two-dimensional shape is extruded to form a three-dimensional figure.
Another aspect of the present invention relates to a method and software for a creating a three-dimensional figure from a two-dimensional planar surface in which the interior region of the two-dimensional planar surface is selected and, based on input from a user""s movement of a cursor control device, the interior region is extruded into a third dimension, thereby creating a three-dimensional figure.
An additional aspect of the present invention relates to a method and software for creating a three-dimensional figure from a two-dimensional planar surface. In accordance with the methodology of this aspect, a push/pull tool is selected by providing a first mouse operation, such as a mouse click; an interior region of the two-dimensional planar surface is selected by providing a second mouse operation, such as a mouse click; and the interior region is extruded into a third dimension by moving the cursor-with a mouse operation, such as a mouse drag.
Accordingly, one aspect of the present invention relates to a method and software for creating a component within a three-dimensional model in which a set of elements is selected within the model, behavioral properties that control the interaction between the selected elements and a model are specified, and the component is created based on the selected elements and the specified behavioral properties.
An additional aspect of the present invention relates to a method and software for creating a component in a three-dimensional model. Within the methodology of this aspect, a set of model components are selected based on received input, other input is received that specify a plurality of behavioral properties, a component is created based on the selected elements and at least one of the specified behavioral properties, and then the component is stored in a persistent storage repository.
Many additional aspects of various embodiments of the present invention enhance, often synergistically, its intuitive nature. These aspects include measuring tools that can be used to determine the length of elements within a model; component creation tools that facilitate the creation of a re-usable component; protractor tools that can be used to determine the angle of edges within a model; and help messages and visual cues that inform a user when different lines are perpendicular or parallel, are aligned with system axes, or are aligned with other points of interest within the scene.
Additional needs, advantages, and novel features of the present invention will be set forth in the description that follows, and in part, will become apparent upon examination or may be learned by practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims.